#!/bin/bash # ######################################## # Inicio do script install debootstrap # ######################################## # ##################################################### # Edite os valores dos Campos 'Disco da Instalação' # # 'Nome do Host' 'Sistema de Arquivo Ext4 ou Btrfs' # # 'Onde sera Instalado o Sistema' # ##################################################### # ####################### # Disco da Instalação # ####################### di="sda" #################### # Nome do Host # #################### hostn="Nome-do-host" #################################### # Sistema de Arquivo Ext4 ou Btrfs # #################################### sf="Btrfs" ################################# # Onde sera Instalado o Sistema # ################################# destino="/mnt/install" # ######################################### # Cria as Partições de Boot Root e Swap # ######################################### dd if=/dev/zero of=/dev/$di bs=512 count=1 #################### # System Detection # #################### ################# # Memoria Total # ################# #swp="-$(free | grep Mem | cut -d ' ' -f 9 | awk '{print ($1/1024)}' | cut -d '.' -f 1)MiB" #swp="-$(cat /proc/meminfo | grep MemTotal | cut -d ' ' -f 9 | awk '{print ($1/1024)}' | cut -d '.' -f 1)MiB" ################################### # Memoria Total 2 vezes o tamanho # ################################### #swp="-$(free | grep Mem | cut -d ' ' -f 9 | awk '{print ($1/1024)*2}' | cut -d '.' -f 1)MiB" #swp="-$(cat /proc/meminfo | grep MemTotal | cut -d ' ' -f 9 | awk '{print ($1/1024)*2}' | cut -d '.' -f 1)MiB" ###################################### # Memoria Total mais porcentagem 10% # ###################################### #swp="-$(free | grep Mem | cut -d ' ' -f 9 | awk '{print ($1/1024)+(($1/1024)*10)/100}' | cut -d '.' -f 1)MiB" #swp="-$(cat /proc/meminfo | grep MemTotal | cut -d ' ' -f 9 | awk '{print ($1/1024)}' | awk '{print ($1+($1 * 10)/100)}' | cut -d '.' -f 1)MiB" if [[ ! -d "/sys/firmware/efi/" ]]; then SYSTEM="BIOS" parted /dev/$di "mklabel msdos" echo -e "mkpart primary 1MiB 501MiB\nI\nq" | parted -a optimal /dev/$di ---pretend-input-tty echo -e "mkpart primary 501MiB $swp\nI\nq" | parted -a optimal /dev/$di ---pretend-input-tty echo -e "mkpart primary $swp 100%\nI\nq" | parted -a optimal /dev/$di ---pretend-input-tty ################# # Boot Particao # ################# bp=${di}1 ################# # Root Particao # ################# rp=${di}2 ################# # Swap Particao # ################# sp=${di}3 else SYSTEM="UEFI" parted /dev/$di "mklabel gpt" echo -e "mkpart bios 1MiB 2MiB\nI\nq" | parted -a optimal /dev/$di ---pretend-input-tty echo -e "mkpart efi 2MiB 52MiB\nI\nq" | parted -a optimal /dev/$di ---pretend-input-tty echo -e "mkpart boot 52MiB 552MiB\nI\nq" | parted -a optimal /dev/$di ---pretend-input-tty echo -e "mkpart root 552MiB $swp\nI\nq" | parted -a optimal /dev/$di ---pretend-input-tty echo -e "mkpart swap $swp 100%\nI\nq" | parted -a optimal /dev/$di ---pretend-input-tty parted /dev/$di "set 1 bios_grub on" ################# # EFI Particao # ################# ef=${di}2 ################# # Boot Particao # ################# bp=${di}3 ################# # Root Particao # ################# rp=${di}4 ################# # Swap Particao # ################# sp=${di}5 ################################### # Formata a Partição EFI em Fat32 # ################################### mkfs.vfat -F32 /dev/$ef fi # clear # ################################ # Cria o Destino da instalação # ################################ mkdir $destino # ####################### # Atualiza os Pacotes # ####################### apt -y update # ##################################### # Formata a Partição Boot em ext4fs # ##################################### mkfs.ext4 -F /dev/$bp # ########################### # Formata a Partição Swap # ########################### mkswap -f /dev/$sp # if [ $sf = "Ext4" ]; then ##################################### # Formata a Partição Root em ext4fs # ##################################### mkfs.ext4 -F /dev/$rp # #################################### # Monta a Partição Root no Destino # #################################### mount -t ext4 /dev/$rp $destino # else #################################### # Formata a Partição Root em btrfs # #################################### apt -y install btrfs-progs mkfs.btrfs -f /dev/$rp # #################################### # Monta a Partição Root no Destino # #################################### mount -t btrfs /dev/$rp $destino cd $destino/ btrfs su cr @ cd .. umount $destino mount -t btrfs /dev/$rp -o subvol=@ $destino # fi ############################################# # Cria no Destino o Sistema com debootstrap # ############################################# apt -y install debootstrap # debootstrap trixie $destino http://mirror.uepg.br/debian/ # ########################################### # Cria no Destino o /etc/apt/sources.list # ########################################### cat << EOS > $destino/etc/apt/sources.list ################################################################################### #Versão Codinome Status # # 15 Duke Codinome anunciado # # 14 Forky teste (testing) — sem data de lançamento definida # # 13 Trixie Versão estável (stable) atual # # 12 Bookworm Versão antiga (oldstable) atual # # 11 Bullseye Versão muito antiga (oldoldstable) atual, sob o suporte LTS # # 10 Buster Versão arquivada, sob suporte LTS estendido pago por terceiros # # 9 Stretch Versão arquivada, sob suporte LTS estendido pago por terceiros # ################################################################################### # # See http://wiki.debian.org/DebianReleases # deb http://deb.debian.org/debian/ stable main contrib non-free non-free-firmware deb-src http://deb.debian.org/debian/ stable main contrib non-free non-free-firmware # deb http://deb.debian.org/debian-security stable-security main contrib non-free non-free-firmware deb-src http://deb.debian.org/debian-security stable-security main contrib non-free non-free-firmware # deb http://deb.debian.org/debian stable-backports main contrib non-free non-free-firmware # ################## # Brasil Mirrors # ################## #ftp.br.debian.org #debian.c3sl.ufpr.br #debian.pop-sc.rnp.br #mirror.blue3.com.br #mirrors.ic.unicamp.br #mirror.uepg.br #mirror.ufscar.br ############################# # apt install netselect-apt # ############################# EOS # ################################### # Cria no Destino o /root/.bashrc # ################################### cat << EOP > $destino/root/.bashrc #!/bin/bash # export PS1='\h:\w\$ ' umask 022 # PS1='\[\033[01;32m\]\u\[\033[01;37m\]@\[\033[1;33m\]\h\[\033[1;32m\]|\[\033[01;36m\]\t\[\033[01;32m\]|\[\033[01;34m\]\j\[\033[01;32m\]|\[\033[01;31m\]{\\\$}\[\033[01;32m\]|\[\033[01;37m\]<\w>' # alias cls="clear" alias cp="cp -i" alias dfd="discodfd" alias dir='ls --color=auto --format=vertical' alias fim="poweroff" alias la="ls -la --color=auto" alias limpo="shutdown now" alias ll="ls -l --color=auto" alias l="ls -a --color=auto" alias ls='ls --color=auto' alias mc="source /usr/lib/mc/mc-wrapper.sh" alias mv="mv -i" alias nt="netstat -ntlp | sort" alias perm="stat -c %a " alias rebootmeu="sync & sync & reboot" alias removed="apt-get remove --purge" alias rm="rm -i" alias sd="systemctl" alias testahd="shutdown -rF now" alias where="type -all" alias which="type -path" # EOP # ############################################### # Cria no Destino o Script /tmp/chrootinst.sh # ############################################### cat << EOR > $destino/tmp/chrootinst.sh #!/bin/bash # echo "$hostn" > /etc/hostname # apt -y update # apt -y install locales dpkg-reconfigure locales # apt -y install tzdata dpkg-reconfigure tzdata # apt -y install console-setup dpkg-reconfigure console-setup # apt -y install btrfs-progs mc net-tools network-manager openssh-server # apt -y install arch-install-scripts # mount /dev/$bp /boot # swapon /dev/$sp # genfstab -U -p / > /etc/fstab # apt -y install linux-image-amd64 # apt -y install linux-headers-amd64 # apt -y install firmware-linux firmware-linux-free firmware-linux-nonfree firmware-misc-nonfree # apt -y install grub2 grub2-common # update-grub # grub-install /dev/$di # ############### # Se for UEFI # ############### if [ "$SYSTEM" = 'UEFI' ]; then mkdir /boot/efi mount /dev/$ef /boot/efi genfstab -U -p / > /etc/fstab apt -y install grub-efi grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=DeBootStrap --removable --recheck /dev/$di update-grub umount /boot/efi fi # swapoff -a # umount /boot # clear # echo -e "\a####################################" echo -e "\a####### Crie a Senha do Root #######" echo -e "\a####################################" # passwd # echo -e "\n" echo -e "\n" echo -e "\n" # echo -e "############################################" echo -e "####### Sistema Instalado Rebootando #######" echo -e "############################################" # EOR # ######################################### # Monta no Destino os /dev /sys e /proc # ######################################### mount --bind /dev $destino/dev && mount --bind /dev/pts $destino/dev/pts && mount --bind /sys $destino/sys && mount --bind /proc $destino/proc # ################################################## # Executa no Destino o Script /tmp/chrootinst.sh # ################################################## chmod +x $destino/tmp/chrootinst.sh # chroot $destino /tmp/chrootinst.sh # ############################################ # Desmonta no Destino os /dev /sys e /proc # ############################################ umount $destino/dev/pts && umount $destino/dev && umount $destino/sys && umount $destino/proc # sleep 5 # ###################### # Desmonta o Destino # ###################### umount $destino # reboot # ##################################### # Fim do script install debootstrap # ##################################### #